interface IPerson {
  id: number
  name: string
  age?: number // 可选属性
  [propName: string]: any // 索引签名，允许有其他属性
  readonly cash?: number // 只读属性
}

const person: IPerson = {
  id: 101,
  name: 'Henry',
  gender: 'male',
  cash: 9999999
}

// interface IPerson2 {
//   name: string
//   age?: number // 错误，类型“number | undefined”的属性“age”不能赋给“string”索引类型“string”。ts(2411)
//   [propName: string]: string
// }
